<?php

/**
* 根据分类ID获取该分类下的文章列表
* 如果你已经有了这个分类的名称，你可以使用get_cat_ID(catname)获得分类ID
* 如果你已经有这个分类的别名，可以用get_category_by_slug($category)->term_id获得分类ID
*/

function post_by_category($cat_id = 0,$num = 10){
	$category = get_category($cat_id);
	$cat_name = $category->name;
	//$cat_link = get_category_link($cat_id);
	//$post_num = $category->count;
?>
<h1><?php echo $cat_name; ?></h1>
<ul>
<?php
	query_posts('cat='.$cat_id.'&ignore_sticky_posts=1&posts_per_page='.$num);
	while(have_posts()):the_post();
?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php if(get_the_title()){ ?><?php the_title(); ?><?php }else{interpret('无题');} ?></a></li>
<?php
	endwhile;
	wp_reset_query();
?>
</ul>
<?php
}

/**
* 下面将实现小工具的制作
*/
class PostByCategoryWidget extends WP_Widget
{
	/*
	** 构造函数
	** 声明一个数组$widget_ops，用来保存类名和描述，以便在控制面板正确显示工具信息
	** $control_ops 是可选参数，用来定义小工具在控制面板显示的宽度和高度
	** 最后是关键的一步，调用WP_Widget来初始化我们的小工具
	*/
	function PostByCategoryWidget(){
		$widget_ops = array('classname'=>'hot-post','description'=>'类目文章列表');
		$control_ops = array('width'=>250,'height'=>300);
		$this->WP_Widget(false,'类目文章列表',$widget_ops,$control_ops);
	}
	
	function form($instance){
		$instance = wp_parse_args((array)$instance,array('title'=>'类目文章列表'));
		$cat_id = @(int)$instance['cat_id'];
		$num = @(int)$instance['num'];
?>
		<p>栏目ID：<input size="70%" name="<?php echo $this->get_field_name('cat_id'); ?>" type="text" value="<?php echo $cat_id; ?>" /></p>
		<p>条数：<input size="70%" name="<?php echo $this->get_field_name('num'); ?>" type="text" value="<?php echo $num; ?>" /></p>
<?php
	}
	
	function update($new_instance,$old_instance){
		$instance = $old_instance;
		$instance['cat_id'] = strip_tags(stripslashes($new_instance['cat_id']));
		$instance['num'] = strip_tags(stripslashes($new_instance['num']));
		return $instance;
	}
	
	function widget($args,$instance){
		extract($args);
		echo $before_widget;
		$cat_id = (int)$instance['cat_id'];
		$num = (int)$instance['num'];
		post_by_category($cat_id,$num);
		echo $after_widget;
	}
}//小工具类结束
function PostByCategoryInit(){
	register_widget('PostByCategoryWidget');
}
add_action('widgets_init','PostByCategoryInit');


